Skip to content

Backport fixes for WCAG 1.3.1 and WCAG 4.1.2#1566

Merged
svor merged 2 commits into
7.117.xfrom
sv-backport-a11y-fixes
May 14, 2026
Merged

Backport fixes for WCAG 1.3.1 and WCAG 4.1.2#1566
svor merged 2 commits into
7.117.xfrom
sv-backport-a11y-fixes

Conversation

@svor
Copy link
Copy Markdown
Contributor

@svor svor commented May 14, 2026

olexii4 added 2 commits May 14, 2026 13:43
…(WCAG 1.3.1) (#1564)

WCAG 2.2 criterion 1.3.1 (Info and Relationships, Level A) requires that
programmatic structure matches the visual presentation so assistive
technologies can correctly expose list context and item counts.

Two violations fixed:

1. Navigation sidebar (RecentList): NavGroup (renders <section>) was a direct
   child of NavList (renders <ul>), producing <ul><section>...</section></ul>.
   HTML forbids <section> as a direct child of <ul>; screen readers could not
   announce the correct list context or item count.

   Fix: remove the NavList wrapper from NavigationRecentList. NavGroup already
   creates its own internal <ul> for its NavItem children, so the rendered
   structure is now <nav><ul>...</ul><section><ul><li>...</li></ul></section></nav>,
   which is valid and correctly exposes the list to assistive technologies.

2. Toast alert group (AppAlertGroup): AlertGroup with isToast always rendered
   <ul role="list" class="pf-v6-c-alert-group pf-m-toast"> even when empty.
   An empty element declared as a list violates 1.3.1 because it claims a list
   relationship with no list items.

   Fix: return an empty fragment when there are no alerts, consistent with the
   existing guard in WorkspaceProgress/Alert.

Assisted-by: Claude Sonnet 4.6

Signed-off-by: Oleksii Orel <oorel@redhat.com>
…1.2) (#1563)

WCAG 2.2 criterion 4.1.2 (Name, Role, Value, Level A) requires that elements
with aria-label have a valid semantic role so assistive technologies can
correctly expose the value.

The workspace status indicator used a generic <span> with aria-label but no
role, causing screen readers to silently ignore the status text. The same span
is used in the Workspaces list and the Workspace Details Overview.

Adding role="img" to the span declares it as a named graphic element.
Screen readers now announce e.g. "Workspace status is Running" when the
element receives focus, satisfying the criterion.

Assisted-by: Claude Sonnet 4.6

Signed-off-by: Oleksii Orel <oorel@redhat.com>
@che-bot
Copy link
Copy Markdown
Contributor

che-bot commented May 14, 2026

Click here to review and test in web IDE: Contribute

@github-actions
Copy link
Copy Markdown

Docker image build succeeded: quay.io/eclipse/che-dashboard:pr-1566 (linux/amd64, linux/arm64)

kubectl patch command
kubectl patch -n eclipse-che "checluster/eclipse-che" --type=json -p="[{"op": "replace", "path": "/spec/components/dashboard/deployment", "value": {containers: [{image: "quay.io/eclipse/che-dashboard:pr-1566", name: che-dashboard}]}}]"

@openshift-ci
Copy link
Copy Markdown

openshift-ci Bot commented May 14, 2026

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: olexii4, svor

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@svor svor merged commit 11f3186 into 7.117.x May 14, 2026
19 of 25 checks passed
@svor svor deleted the sv-backport-a11y-fixes branch May 14, 2026 12:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants